package io;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
/**
 * 对象流作用:进行对象的序列化和反序列化
 * 本例演示序列化
 */
public class OosDemo {
    public static void main(String[] args) throws IOException {
        Person p = new Person("张三", 20, "男", new String[]{"中国"});
        FileOutputStream fos = new FileOutputStream("person.txt");  //低级流（文件流）
        ObjectOutputStream oos = new ObjectOutputStream(fos);             //高级流（对象流）
        /*
          对象输出流在进行序列化时，要求该对象必须实现可序列化接口Serializable
          否则调用writeObject()时会发生NotSerializableException异常
         */
        oos.writeObject(p); //写出对象（序列化）
        System.out.println("写入完毕");
        oos.close();
    }
}
